/****************************************************************************************************** */
var global_pagesize = 5;
var global_authkey = 'AUTHTOKKEN';
function getStorageAuthKey(){
	return global_authkey;
}
/****************************************************************************************************** */
function isNull(val){
	return val == null || val == "undefined";
}
function isBlank(val){
	return isNull(val) || val == "" || val.length<=0;
}
function alertMsg(msg){
	app.dialog.alert(msg, '提示');
}
// 去除首尾字符
function trim(sval, c){
	if(c){
		return sval.replace(new RegExp('^\\'+c+'+|\\'+c+'+$', 'g'), '');
	}
	return sval.replace(/(^\s*)|(\s*$)/g, "");
}
// 去除开始字符
function ltrim(sval, c){
	if(c){
		return sval.replace(new RegExp('^\\'+c+'+', 'g'), '');
	}
	return sval.replace(/(^\s*)/g,"");
}
// 去除末尾字符
function rtrim(sval, c){
	if(c){
		return sval.replace(new RegExp('\\'+c+'+$', 'g'), '');
	}
	return sval.replace(/(\s*$)/g,"");
}
function getUrlParam(name) {
		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
		var r = window.location.search.substr(1).match(reg);
		if (r != null) return unescape(r[2]); return '';
}
/**********************************************************************/
var myCookie = {
    set:function(key,val,time){//设置cookie方法
        var date=new Date(); //获取当前时间
        var expiresDays=time;  //将date设置为n天以后的时间
        date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化为cookie识别的时间
        document.cookie=key + "=" + val +";expires="+date.toGMTString();  //设置cookie
    },
    get:function(key){//获取cookie方法
        /*获取cookie参数*/
        var getCookie = document.cookie.replace(/[ ]/g,"");  //获取cookie，并且将获得的cookie格式化，去掉空格字符
        var arrCookie = getCookie.split(";")  //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
        var tips;  //声明变量tips
        for(var i=0;i<arrCookie.length;i++){   //使用for循环查找cookie中的tips变量
            var arr=arrCookie[i].split("=");   //将单条cookie用"等号"为标识，将单条cookie保存为arr数组
            if(key==arr[0]){  //匹配变量名称，其中arr[0]是指的cookie名称，如果该条变量为tips则执行判断语句中的赋值操作
                tips=arr[1];   //将cookie的值赋给变量tips
                break;   //终止for循环遍历
            } 
        }
        return tips;
    },
	remove:function(key){
		this.set(key, '', -1);
	}
}
/**********************************************************************/
var myStorage = {
	set: function(k, v){ if(typeof(Storage) !== "undefined") { localStorage.setItem(k, v); } },
	get: function(k){ if(typeof(Storage) !== "undefined") { return localStorage.getItem(k); }else{return null;}},
	clear: function(){ if(typeof(Storage) !== "undefined") { localStorage.clear(); } },
}
function checkAuthTokenCookie(){
	var strckv = myCookie.get(global_authkey);
	if (isBlank(strckv)){
		strckv = myStorage.get(getStorageAuthKey());
		if (!isBlank(strckv)){
			myCookie.set(global_authkey, strckv);
		}
	}
}
// 本地存储
//判断obj是否为json对象
function isJson(obj){
	var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase().indexOf("[object ")>=0; 
	return isjson;
}
// 判断key是否为json属性
function isJsonProps(obj, key){
	return isJson(obj) && obj.hasOwnProperty(key);
}
// 获取json对象属性值
function getJsonData(obj, key){
	if(isJsonProps(obj, key)){return obj[key];}
	return "";
}

// 获取数据，发送 get ajax 请求, 如果没有登录，弹出登陆框，刷新页面
function sendGet(surl, postData, funcname){
	sendHttp(surl, "GET", postData, funcname);
}
// 提交数据，发送 post ajax 请求, 如果没有登录，弹出登陆框，提示提交
function sendPost(surl, postData, funcname){
	sendHttp(surl, "POST", postData, funcname);
}
// 发送 HTTP ajax 请求
function sendHttp(surl, method, postData, funcname){
	var storetoken = myStorage.get(getStorageAuthKey());
	if (isBlank(storetoken)){ storetoken = "";}
	app.request({
	    url: surl,
	    method: method,
	    dataType: "json", // 返回数据类型，可以是 json
		headers: {auth_token: storetoken} ,
	    data: postData,
	    success: function(res, status){
	        //console.log(res);
	        if (checkLogin(res, method)){
	        	typeof funcname === "function" ? funcname(res) : false;
	        }else{
				app.dialog.alert(res.msg,'');
			}
	    },
	    error: function(xhr, status){
	        app.dialog.alert('操作失败！请联系管理员！ajax error:' + status, '');
	        console.log("ajax error: " + status);
	    }
	});
}
// 检测登录，如果没有登录，弹出登陆框
function checkLogin(response, method, funcname){
	if (isJson(response) && response.hasOwnProperty("code") && response.code == 401 ){
		console.log('no login! goto login');
		clearAuthToken();
		if (window.location.href.indexOf('/family')>0){
			window.location.href = '/front/family/login';
		}else{
			//app.views.main.router.navigate({name: 'login'});
			window.location.href = '/front/teacher/html/login';
		}
		return false; 
	}
	return true;
}
function clearAuthToken(){
	myStorage.clear();
	myCookie.remove(global_authkey);
}
function checkStorageAuthToken(ckurl, reurl){
	var storetoken = myStorage.get(getStorageAuthKey());
	if (isBlank(storetoken)){ 
		clearAuthToken();
		return; 
	}
	app.request({
	    url: ckurl,
	    method: 'POST',
	    dataType: "json", // 返回数据类型，可以是 json
		headers: {auth_token: storetoken},
	    success: function(res, status){
	        console.log(res);
			if(res.code==200){
				window.location.href = reurl;
			}else{
				clearAuthToken();
			}
	    },
	    error: function(xhr, status){
	        console.log("ajax error: " + status);
			clearAuthToken();
	    }
	});
}
// 表单验证
function validateForm(formSelector){
	// 校验
	var inputs = $$(formSelector + " input");
	for(var i=0; i<inputs.length; i++){
		if (!checkMustInputVal(inputs[i])){
			return false;
		}
	}
	// 校验
	var tls = $$(formSelector + " textarea");
	for(var i=0; i<tls.length; i++){
		if (!checkMustInputVal(tls[i])){
			return false;
		}
	}
	// 校验
	var sels = $$(formSelector + " select");
	for(var i=0; i<sels.length; i++){
		var me = sels[i];
		var mytitle = $$(me).attr('placeholder');
		var myval = $$(me).val();
		var myrequired = $$(me).attr("required");
		if (!isNull(myrequired) && (isBlank(myval) || myval == '0')){
			app.dialog.alert('请选择' + mytitle,'');
			$$(me).focus();
			return false;
		}
	}
	return true;
}
function checkMustInputVal(me){
	var mytitle = $$(me).attr('placeholder');
	var myval = $$(me).val();
	var myrequired = $$(me).attr("required");
	if (!isNull(myrequired) && isBlank(myval)){
		app.dialog.alert('请输入' + mytitle, '');
		$$(me).focus();
		return false;
	}
	return true;
}
function checkUploadFile(file, fileType = 'images'){
	// 获取当前选中的文件
    const imgMasSize = 1024 * 1024 * 10; // 10MB
	
	var filetype = file.type.split("/")[1];

    // 检查文件类型
    if(fileType == 'images'){
		if (['jpeg', 'png', 'gif', 'jpg'].indexOf(filetype) < 0){
			app.dialog.alert("文件类型仅支持 jpeg/png/gif！",'');
			return false;
		}
    }else if(fileType == 'videos'){
		if (['mp4', 'avi', '3gp', 'wmv'].indexOf(filetype) < 0){
			app.dialog.alert("文件类型仅支持 mp4/avi/3gp/wmv！",'');
			return false;
		}
    }else{
		app.dialog.alert("不允许的文件格式！" + file.type,'');
		return false;
	}

    // 文件大小限制
    if(file.size > imgMasSize ) {
        // 文件大小自定义限制
        app.dialog.alert("文件大小不能超过10MB！",'');
        return false;
    }
	
	return true;
}
function formatUserHeadImage(user_img){
	if (isBlank(user_img)){
		return '/front/img/user.png';
	}
	return getZoomFileUrl(user_img);
}
// 日期格式化 formatDate(new Date(Date.parse(d.enact_time.replace(/-/g,"/"))), 'yyyy-MM-dd')
function formatDate(str_date, formatStr) {  
	if (isBlank(str_date)){ return formatNullValue(str_date); }
	var date = new Date(Date.parse(str_date.replace(/-/g,"/")));
    var o = {   
		"M+" : date.getMonth()+1,                 //月份   
		"d+" : date.getDate(),                    //日   
		"h+" : date.getHours(),                   //小时   
		"m+" : date.getMinutes(),                 //分   
		"s+" : date.getSeconds(),                 //秒   
		"q+" : Math.floor((date.getMonth()+3)/3), //季度   
		"S"  : date.getMilliseconds()             //毫秒   
	  };   
	  if(/(y+)/.test(formatStr))   
	  formatStr=formatStr.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));   
	  for(var k in o)   
		if(new RegExp("("+ k +")").test(formatStr))   
		formatStr = formatStr.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
	  return formatStr;
}
   
Date.prototype.Format = function(formatStr)  {   
    return  formatDate(this.toString(), formatStr);
}  
Date.prototype.DateAdd = function(strInterval, Number) {   
    var dtTmp = this;  
    switch (strInterval) {   
        case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));  
        case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));  
        case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));  
        case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));  
        case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));  
        case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
        case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
        case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
    }  
}
function StringToDate(DateStr)  {   
    var converted = Date.parse(DateStr);  
    var myDate = new Date(converted);  
    if (isNaN(myDate))  
    {   
        //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
        var arys= DateStr.split('-');  
        myDate = new Date(arys[0],--arys[1],arys[2]);  
    }  
    return myDate;  
}  

function formatNullValue(source){
	if (source == null || source == 'undefined'){
		return "";
	}
	return source;
}
function callTelphone(Number){
	window.location.href = 'tel://' + Number;  
} 
function getZoomFileUrl(imgurl){
	return getZoomFileUrlwh(imgurl, 100, 100);
}
function getZoomFileUrlwh(imgurl, w, h){
	if (isBlank(imgurl) || imgurl.indexOf('http')==0 || imgurl.indexOf('/front/')==0){
		return imgurl;
	}
	return getZoomFileAbspath() + '?w='+w+'&h='+h+'&file=' + imgurl;
}
function getZoomFileAbspath(){
	//console.log(window.location.href);
	if (window.location.href.indexOf('/family')>0){
		return '/front/family/fileup/getfile';
	}else{
		return '/front/teacher/fileup/getfile';
	}
}